from openpyxl import load_workbook, Workbook
from openpyxl.styles import PatternFill, Alignment, Side, Border, Font
import os

# 设置文件夹路径
path = './各部门利润表汇总/'

# 返回当前目录下所有文件名
files = os.listdir(path)

# 循环文件名列表
for file in files:
    # 拼接文件路径
    file_path = os.path.join(path, file)  # 使用 os.path.join 更加安全

    # 打开工作簿
    wb = load_workbook(file_path)

    # 打开工作表
    sheet = wb.active

    # 调整列宽
    sheet.column_dimensions['A'].width = 10
    sheet.column_dimensions['B'].width = 25
    sheet.column_dimensions['C'].width = 50
    sheet.column_dimensions['D'].width = 10
    sheet.column_dimensions['E'].width = 20
    sheet.column_dimensions['F'].width = 15

    # 定义表头颜色样式为橙色
    header_fill = PatternFill(patternType='solid', fgColor='FF7F24')

    # 定义数据部分颜色样式为淡黄色
    content_fill = PatternFill(patternType='solid', fgColor='FFFFE0')

    # 定义表尾颜色样式为淡桔红色
    bottom_fill = PatternFill(patternType='solid', fgColor='EE9572')

    # 定义对齐样式横向居中、纵向居中
    align = Alignment(horizontal='center', vertical='center')

    # 定义边样式为细条
    side = Side(style='thin')

    # 定义表头边框样式，有底边和右边
    header_border = Border(bottom=side, right=side)

    # 定义数据部分边框样式，有左边
    content_border = Border(left=side)

    # 循环第一行单元格，调整表头样式
    for cell in sheet[1]:
        # 用定义好的样式，去设置单元格填充颜色
        cell.fill = header_fill

        # 设置单元格对齐方式
        cell.alignment = align

        # 设置单元格边框
        cell.border = header_border

    # 从第二行开始，循环每一行
    for row in sheet.iter_rows(min_row=2):
        # 循环改行单元格，调整样式
        for cell in row:
            cell.fill = content_fill
            cell.alignment = align
            cell.border = content_border

    # 获取最后一行行号
    row_num = sheet.max_row

    # 循环最后一行单元格，调整表尾颜色样式
    for cell in sheet[row_num]:
        cell.fill = bottom_fill

    # 获取最后一列列号
    column_num = sheet.max_column

    # 获取倒数第二行行号
    row_num_2 = sheet.max_row - 1

    # 遍历从第2行开始的每行内容，values_only=True可以直接获取单元格的值
    for row in sheet.iter_rows(min_row=2, values_only=True):
        # 遍历每一行内的单元格
        for r in row:
            print(r)

    # 保存工作簿
    wb.save(file_path)